home *** CD-ROM | disk | FTP | other *** search
Modula Implementation | 1988-08-16 | 13.7 KB | 530 lines |
- IMPLEMENTATION MODULE KermSet;
- (************************************************************************)
- (* Set changes the value of any local parameter *)
- (* written: 09.10.85 Matthias Aebi *)
- (* last modification: 18.03.86 Matthias Aebi *)
- (************************************************************************)
-
- FROM KermMisc IMPORT SetBaud, StringToCard;
- FROM KermParam IMPORT LBaudRate, LCheckType, LCurrPort, LEcho, LEOLChar,
- LEscChar, LFileType, LFilNamConv, LMaxRetries,
- LNumOfPad, LPackSize, LPadChar, LParity, LPrefChar,
- LQuoteChar, LStartChar, LTimeOut, LTimer,LDebug,
- LWarning, LPrompt, ParityTyp, FileTyp;
- FROM Terminal IMPORT WriteString, WriteLn;
- FROM String IMPORT Copy;
- FROM M2Kermit IMPORT Param1, Param2;
-
- (************************************************************************)
- PROCEDURE Set;
- (************************************************************************)
- VAR
- displayParam : BOOLEAN;
- displayValue : BOOLEAN;
- paramCard : CARDINAL;
-
- BEGIN
- displayParam := FALSE;
- displayValue := FALSE;
-
- CASE CAP(Param1[0]) OF
- "?": (* Help *)
- displayParam := TRUE; |
-
- "B": (* Baud Rate *)
- (* If Param2 is a ?, StringToCard returns FALSE *)
- IF NOT StringToCard(Param2, paramCard)
- THEN
- displayValue := TRUE;
- ELSE
- IF (paramCard<> 300) AND (paramCard<> 600) AND
- (paramCard<> 1200) AND (paramCard<>2400) AND
- (paramCard<> 4800) AND (paramCard<>9600) AND
- (paramCard<>19200)
- THEN
- WriteString("Undefined baud rate");
- displayValue := TRUE;
- ELSE
- LBaudRate := paramCard;
- SetBaud(LBaudRate, LCurrPort);
- END;
- END;
- IF displayValue
- THEN
- WriteLn;
- WriteString("Available baud rates are:"); WriteLn;
- WriteString(" 300 600 1200 2400 4800 9600 19200");
- WriteLn;
- END; |
-
- "C": (* Check type *)
- IF NOT StringToCard(Param2, paramCard)
- THEN
- displayValue := TRUE;
- ELSE
- IF NOT ((paramCard >= 1) AND (paramCard <= 3))
- THEN
- WriteString("Invalid check type");
- displayValue := TRUE;
- ELSE
- LCheckType := paramCard;
- END;
- END;
- IF displayValue
- THEN
- WriteLn;
- WriteString("Available check types are:");
- WriteLn;
- WriteString(" 1 2 3");
- WriteLn;
- END; |
-
-
- "D": (* Debug *)
- CASE CAP(Param2[0]) OF
- "?":
- displayValue := TRUE; |
-
- "O":
- CASE CAP(Param2[1]) OF
- "N":
- LDebug := TRUE; |
-
- "F":
- LDebug := FALSE;
-
- ELSE
- displayValue := TRUE;
- END;
-
- ELSE
- displayValue := TRUE;
- END;
- IF displayValue
- THEN
- WriteLn;
- WriteString("Specify ON or OFF");
- WriteLn;
- END; |
-
-
- "E":
- CASE CAP(Param1[1]) OF
- "N": (* EOL character *)
- IF NOT StringToCard(Param2, paramCard)
- THEN
- displayValue := TRUE;
- ELSE
- IF paramCard > 127
- THEN
- WriteString("Invalid EOL character number");
- displayValue := TRUE;
- ELSE
- LEOLChar := CHR(paramCard);
- END;
- END;
- IF displayValue
- THEN
- WriteLn;
- WriteString("Enter the EOL character as a number (0..127)");
- WriteLn;
- END; |
-
-
- "S": (* Escape character *)
- IF (Param2[0] = "?") OR (Param2[0] = 0C)
- THEN
- WriteLn;
- WriteString("Enter the 'connect escape' character");
- WriteLn;
- ELSE
- LEscChar := Param2[0];
- END;
-
- ELSE
- WriteLn;
- WriteString("Undefined parameter");
- displayParam := TRUE;
- END; |
-
-
- "F": (* File Type *)
- CASE CAP(Param2[0]) OF
- "?":
- displayValue := TRUE; |
-
- "T":
- LFileType := text; |
-
- "B":
- LFileType := binary;
-
- ELSE
- WriteLn;
- WriteString("Undefined file type");
- displayValue := TRUE;
- END;
- IF displayValue
- THEN
- WriteLn;
- WriteString("Possible file types are:");
- WriteLn;
- WriteString(" Text Binary");
- WriteLn;
- END; |
-
-
- "L": (* Local echo *)
- CASE CAP(Param2[0]) OF
- "?":
- displayValue := TRUE; |
-
- "O":
- CASE CAP(Param2[1]) OF
- "N":
- LEcho := TRUE; |
-
- "F":
- LEcho := FALSE;
-
- ELSE
- displayValue := TRUE;
- END;
-
- ELSE
- displayValue := TRUE;
- END;
- IF displayValue
- THEN
- WriteLn;
- WriteString("Specify ON or OFF");
- WriteLn;
- END; |
-
-
- "N": (* Name conversion *)
- CASE CAP(Param2[0]) OF
- "?":
- displayValue := TRUE; |
-
- "O":
- CASE CAP(Param2[1]) OF
- "N":
- LFilNamConv := TRUE; |
-
- "F":
- LFilNamConv := FALSE;
-
- ELSE
- displayValue := TRUE;
- END;
-
- ELSE
- displayValue := TRUE;
- END;
- IF displayValue
- THEN
- WriteLn;
- WriteString("Specify ON or OFF");
- WriteLn;
- END; |
-
-
- "P":
- CASE CAP(Param1[1]) OF
- "A":
- CASE CAP(Param1[2]) OF
- "C": (* PACket length *)
- IF NOT StringToCard(Param2, paramCard)
- THEN
- WriteLn;
- WriteString("Enter packet size");
- WriteLn;
- ELSE
- LPackSize := paramCard;
- END; |
-
-
- "D":
- CASE CAP(Param1[3]) OF
- "C": (* PADChar *)
- IF NOT StringToCard(Param2, paramCard)
- THEN
- displayValue := TRUE;
- ELSE
- IF paramCard > 127
- THEN
- WriteString("Invalid padding character number");
- displayValue := TRUE;
- ELSE
- LPadChar := CHR(paramCard);
- END;
- END;
- IF displayValue
- THEN
- WriteLn;
- WriteString("Enter the padding character as a number (0..127)");
- WriteLn;
- END; |
-
-
- "D": (* PADDing *)
- IF NOT StringToCard(Param2, paramCard)
- THEN
- WriteLn;
- WriteString("Enter number of padding characters");
-
- WriteLn;
- ELSE
- LNumOfPad := paramCard;
- END;
-
- ELSE
- WriteLn;
- WriteString("Undefined parameter");
- displayParam := TRUE;
- END; |
-
-
- "R": (* PARity *)
- CASE CAP(Param2[0]) OF
- "?":
- displayValue := TRUE; |
-
- "N":
- LParity := none; |
-
- "O":
- LParity := odd; |
-
- "E":
- LParity := even; |
-
- "M":
- LParity := mark; |
-
- "S":
- LParity := space;
-
- ELSE
- WriteLn;
- WriteString("Invalid parity");
- displayValue := TRUE;
- END;
- IF displayValue
- THEN
- WriteLn;
- WriteString("Available parity types are:");
- WriteLn;
- WriteString(" None Even Odd Space Mark");
- WriteLn;
- END;
-
- ELSE
- WriteLn;
- WriteString("Undefined parameter");
- displayParam := TRUE;
- END; |
-
-
- "O": (* POrt *)
- IF NOT StringToCard(Param2, paramCard)
- THEN
- WriteLn;
- WriteString("Enter port number");
- WriteLn;
- ELSE
- LCurrPort := paramCard;
- END; |
-
-
- "R":
- CASE CAP(Param1[2]) OF
- "E": (* PREfix *)
- IF (Param2[0] = "?") OR (Param2[0] = 0C)
- THEN
- WriteLn;
- WriteString("Enter 8th bit prefix character");
- WriteLn;
- ELSE
- LPrefChar := Param2[0];
- END; |
-
-
- "O": (* PROmpt *)
- IF (Param2[0] = "?") OR (Param2[0] = 0C)
- THEN
- WriteLn;
- WriteString("Enter the prompt to be used ");
- WriteString("for M2-Kermit");
- WriteLn;
- ELSE
- Copy(LPrompt, Param2, 0, HIGH(LPrompt));
- END;
-
- ELSE
- WriteLn;
- WriteString("Undefined parameter");
- WriteLn;
- displayParam := TRUE;
- END;
-
- ELSE
- WriteLn;
- WriteString("Undefined parameter");
- displayParam := TRUE;
- END; |
-
-
- "Q": (* Quote *)
- IF (Param2[0] = "?") OR (Param2[0] = 0C)
- THEN
- WriteLn;
- WriteString("Enter quote character");
- WriteLn;
- ELSE
- LQuoteChar := Param2[0];
- END; |
-
-
- "R": (* Retries *)
- IF NOT StringToCard(Param2, paramCard)
- THEN
- WriteLn;
- WriteString("Enter number of retries before timeout");
- WriteLn;
- ELSE
- LMaxRetries := paramCard;
- END; |
-
-
- "S": (* Start of packet *)
- IF NOT StringToCard(Param2, paramCard)
- THEN
- displayValue := TRUE;
- ELSE
- IF paramCard > 127
- THEN
- WriteString("Invalid padding character number");
- displayValue := TRUE;
- ELSE
- LStartChar := CHR(paramCard);
- END;
- END;
- IF displayValue
- THEN
- WriteLn;
- WriteString("Enter the packet start character as a ");
- WriteString("number (0..127)");
- WriteLn;
- END; |
-
-
- "T":
- CASE CAP(Param1[1]) OF
- "I": (* TImer *)
- CASE CAP(Param2[0]) OF
- "?":
- displayValue := TRUE; |
-
- "O":
- CASE CAP(Param2[1]) OF
- "N":
- LTimer := TRUE; |
-
- "F":
- LTimer := FALSE;
-
- ELSE
- displayValue := TRUE;
- END;
-
- ELSE
- displayValue := TRUE;
- END;
- IF displayValue
- THEN
- WriteLn;
- WriteString("Specify ON or OFF");
- WriteLn;
- END; |
-
-
- "O": (* Time Out *)
- IF NOT StringToCard(Param2, paramCard)
- THEN
- WriteString("Enter time out (seconds)");
- WriteLn;
- ELSE
- LTimeOut := paramCard;
- END;
-
- ELSE
- WriteLn;
- WriteString("Undefined parameter");
- WriteLn;
- displayParam := TRUE;
- END; |
-
-
- "W": (* Warning *)
- CASE CAP(Param2[0]) OF
- "?":
- displayValue := TRUE; |
-
-
- "O":
- CASE CAP(Param2[1]) OF
- "N":
- LWarning := TRUE; |
-
- "F":
- LWarning := FALSE;
-
- ELSE
- displayValue := TRUE;
- END;
-
- ELSE
- displayValue := TRUE;
- END;
-
- IF displayValue
- THEN
- WriteLn;
- WriteString("Specify ON or OFF");
- WriteLn;
- END;
-
- ELSE
- WriteLn;
- WriteString("Undefined parameter");
- WriteLn;
- displayParam := TRUE;
- END;
-
- WriteLn;
-
- IF displayParam
- THEN
- WriteLn;
- WriteString("Choose one of the following:"); WriteLn;
- WriteLn;
- WriteString(" Baud rate PARity"); WriteLn;
- WriteString(" Check type POrt "); WriteLn;
- WriteString(" Debugging PREfix char"); WriteLn;
- WriteString(" ENd of line char PROmpt"); WriteLn;
- WriteString(" EScape character Quote char"); WriteLn;
- WriteString(" File type Retries"); WriteLn;
- WriteString(" Local echo Start of packet"); WriteLn;
- WriteString(" Name conversion TImer"); WriteLn;
- WriteString(" PACket Size Time Out"); WriteLn;
- WriteString(" PAD Character Warning"); WriteLn;
- WriteString(" PADDing"); WriteLn;
- WriteLn;
- END;
-
- END Set;
-
- END KermSet.
-